package com.hl.card.award.service;

import com.hl.card.common.util.ResponseObject;
import com.hl.card.modular.pack.model.AwardDataModel;

/**
 * java类简单作用描述
 *
 * @ProjectName: distdev
 * @Package: com.hl.card.modular.pack.service
 * @ClassName: ${TYPE_NAME}
 * @Description: java类作用描述
 * @Author: 作者姓名
 * @CreateDate: 2018/7/9 17:28
 * @UpdateUser: Neil.Zhou
 * @UpdateDate: 2018/7/9 17:28
 * @UpdateRemark: The modified content
 * @Version: 1.0
 * <p>Copyright: Copyright (c) 2018</p>
 */
public interface IRewardByTrans {
    public ResponseObject manualReward(String userId, String parentCode, String prodCode, String amount, int count);

    public ResponseObject manualReward(String userId, String prodCode, String amount, int count);
    public ResponseObject manualReward(String userId, String prodCode, String amount);

    public ResponseObject manualReward(String userId, String prodCode);

    public ResponseObject reward(String userId, String prodCode, String amount);

    public ResponseObject reward(String userId, String parentCode, String prodCode, String amount);

    public ResponseObject reward(String userId, String prodCode);

    public ResponseObject checkReward(String userId, String parentCode, String prodCode);

    public ResponseObject checkReward(String userId, String prodCode);

    public String getCurrCode(String parentCode);

    public String getAwardKey(String userId, String prodCode) ;
    public String getAwardStatueKey(String userId, String prodCode);

    public boolean checkAwardCanBeAccessed(String userId, String prodCode) ;

    public ResponseObject getAwardStatue(String userId, String parentCode, String prodCode);

    public ResponseObject getAwardStatue(String userId, String prodCode) ;

    public ResponseObject makeDistProfitSplitOnlyOnetime(String userId, String parentCode, String prodCode, String amount);
    public ResponseObject makeDistProfitSplitOnlyOnetime(String userId, String prodCode, String amount);

    public ResponseObject makeDistProfitSplit(String userId, String parentCode, String prodCode, String amount, int count);
    public ResponseObject makeDistProfitSplit(String userId, String parentCode, String prodCode, String amount, Boolean repeate);
    public ResponseObject makeDistProfitSplit(String userId, String prodCode, String score, Boolean repeate);
    public ResponseObject makeDistProfitSplit(String userId, String parentCode, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplit(String userId, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo);

    public ResponseObject makeDistProfitSplitByCount(String userId, String parentCode, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplitByCount(String userId, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplitByCount(String userId, String prodCode, String amount, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplitByCount(String userId, String prodCode, String amount, int count);

    public ResponseObject makeDistProfitSplitOneDayOneTime(String userId, String prodCode, String score);

    public ResponseObject makeDistProfitSplitByCountOneTime(String userId, String prodCode, String score, int count);
    public ResponseObject makeDistProfitSplitOneTime(String userId, String parentCode, String prodCode, String score);
    public ResponseObject makeDistProfitSplitOneTime(String userId, String prodCode, String score);

    public AwardDataModel getAwardData(String userId, String parentCode, String prodCode, String amount, int count, String orderType, String amountUnit) ;
    public AwardDataModel getAwardData(String userId, String prodCode, String amount, int count, String orderType, String amountUnit) ;

    public ResponseObject makeDistProfitSplitByTrans(String userId, String parentCode, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplitByTrans(String userId, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplitByTrans(String userId, String parentCode, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo, String nnfreezeStringTime);
    public ResponseObject makeDistProfitSplitByTrans(String userId, String prodCode, String amount, String amountUnit, String orderType, int count, String mchOrderNo, String nnfreezeStringTime);
    public ResponseObject makeDistProfitSplitByBatch(String userId, String prodCode, String amount, int count, String mchOrderNo);
    public ResponseObject makeDistProfitSplitByWxCommunity(String communityAdmin, String recommender, String userId, String amount);
    public String confirmCommunityAward(String userId);
    public String confirmAuthAward(String orderId);
    public String manualUnfreezeAward(String userId, String mchOrderNo, String amount);
    public ResponseObject makeCommunityAward(String parentCode, String userId, String amount, String orderId);
    public ResponseObject makeAwardByCount(String parentCode, String userId, String amount, String orderId, int count);
    public ResponseObject makeAward(String parentCode, String userId, String amount, String orderId);
    public ResponseObject makeAward(String parentCode, String userId, String amount, String orderId, String unfreezeTime);
    public ResponseObject makeAdvanceAward(String parentCode, String regCode, String userId, String amount, String orderId);
    public ResponseObject makeAdvanceAward(String parentCode, String regCode, String userId, String amount, String orderId, String unfreezeTime);
    public ResponseObject makeDistProfit(String prodCode, String orderId, String parentRecommender, String recommender, String userId, String amount, String unfreezeTime);
}
